;THIS PROGRAM BOOTS AND PUTS UP A COLOR PATTERN ON THE SCREEN.

.ORG	H'8000			;CHANGE THIS ORG TO H'8000 FOR 32K GAMES,
				;USE H'C000 FOR 16K GAMES.

BOOT:	SEI			;DISALLOW IRQ INTERRUPTS
	CLD
	LDX	#H'FF
	TXS			;SET UP THE STACK

  	LDA	#H'00		;ENABLE DOUBLE WIDE SPRITES, USE CHAR SET 1
	STA	H'2000		;AND DISABLE NMI INTS.

	JSR	VERT_WAIT
	JSR	VERT_WAIT
	JSR	VERT_WAIT

;FILL THE BACKGROUND WITH EVERY POSSIBILITY.

	LDA	H'2002		;RESET ADDRESS LATCH
	LDA	#6
	STA	H'2001
	LDA	#H'20
	STA	H'2006
	LDA	#0		
	STA	H'2006
	LDX	#208

F10:	TXA
	STA	H'2007
	STA	H'2007
	STA	H'2007
	STA	H'2007
	DEX			
	BNE	F10

	LDY	#32

F20:	TXA
	STA	H'2007
	STA	H'2007
	STA	H'2007
	STA	H'2007
	DEX
	DEY			
	BNE	F20

;PUT EVERY POSSIBLE PALETTE ON EACH CHAR

	LDA	H'2002		;RESET ADDRESS LATCH
	LDA	#6
	STA	H'2001
	LDA	#H'23
	STA	H'2006
	LDA	#H'C0
	STA	H'2006

	LDX	#60
  	LDA	#B'00011011

P10:	STA	H'2007		;NOW STORE THE PALETTES
	DEX	
	BNE	P10

;SET THE PALETTE REGISTERS

	LDA	H'2002		;RESET ADDRESS LATCH
	LDA	#6
	STA	H'2001
	LDA	#H'3F
	STA	H'2006
	LDA	#0		;ADDRESS ALL EVEN BYTES
	STA	H'2006

	LDA	#H'0F
	STA	H'2007		;3F00

	LDA	#H'11
	STA	H'2007		;3F01

	LDA	#H'14
	STA	H'2007		;3F02

	LDA	#H'05
	STA	H'2007		;3F03

	LDA	#H'3D
	STA	H'2007		;3F04

	LDA	#H'06
	STA	H'2007		;3F05

	LDA	#H'17
	STA	H'2007		;3F06

	LDA	#H'16
	STA	H'2007		;3F07

	LDA	#H'3D
	STA	H'2007		;3F08

	LDA	#H'29
	STA	H'2007		;3F09

	LDA	#H'0C
	STA	H'2007		;3F0A

	LDA	#H'1A
	STA	H'2007		;3F0B

	LDA	#H'3D
	STA	H'2007		;3F0C

	LDA	#H'15
	STA	H'2007		;3F0D

	LDA	#H'18
	STA	H'2007		;3F0E

	LDA	#H'22
	STA	H'2007		;3F0F


	LDA	#0
	STA	H'2006
	STA	H'2006
	STA	H'2005
	STA	H'2005

	LDA	#H'10
	STA	H'2000

	LDA	#H'0E
	STA	H'2001		;ENABLE DISPLAY

VS20:	JMP	VS20	


;THIS SUB WILL WAIT FOR VERTICAL RETRACE ACTIVE.

VERT_WAIT:

V20:	LDA	H'2002
	BPL	V20		;WAIT FOR VERTICAL RETRACE
	RTS

;HERE IS THE NMI VECTOR ROUTINE

NMI:  	RTI

;HERE IS THE IRQ VECTOR

IRQ:	JMP	BOOT
	RTI

.ORG	H'FFFA		

;HERE ARE THE INTERRUPT AND BOOT VECTORS.  

	.DRW	NMI
	.DRW	BOOT
	.DRW	IRQ



